home *** CD-ROM | disk | FTP | other *** search
/ SPACE 1 / SPACE - Library 1 - Volume 1.iso / program / 245 / natural.lst < prev    next >
File List  |  1988-10-10  |  3KB  |  201 lines

  1. '
  2. ' NATURAL PATTERNS by Abe Chachamovits
  3. '
  4. Do
  5.   @Parabolic
  6.   Cls
  7.   @Cuspid
  8.   Cls
  9.   @Rays
  10.   Cls
  11.   @Island
  12.   Cls
  13.   @Resonance
  14.   Cls
  15.   @Caos
  16.   Cls
  17.   @Fish_pop
  18.   Cls
  19. Loop
  20. '
  21. Procedure Parabolic
  22.   '
  23.   Local Nm,Pi,De,Sx,Sy,A
  24.   Nm=81                    !Draws 'Nm' inclinations.
  25.   Pi=4*Atn(1)
  26.   De=0.5
  27.   Sx=160/Sqr(3)
  28.   Sy=180
  29.   '
  30.   For N=1 To Nm
  31.     A=Pi*(-1+2*N/Nm)       !Angule or projection inclination.
  32.     X1=139
  33.     Y1=118
  34.     For T=0 To 3 Step De   !T=time (starting at zero)
  35.       X=T*Cos(A)           !Horizontal distance.
  36.       Y=T*(Sin(A)-T/2)     !Vertical distance.
  37.       '
  38.       If Y>-0.35
  39.         Draw 190+X1,160+Y1 To 190+Sx*X+139,160+118-Sy-Sy*Y
  40.         Goto P
  41.       Endif
  42.       '
  43.       T=3
  44.       '
  45.       P:
  46.     Next T
  47.   Next N
  48.   '
  49. Return
  50. '
  51. Procedure Cuspid
  52.   '
  53.   Local N,Pi,Yo,Xx,Yy
  54.   N=2         !Vary this value from 1 to 2.8.
  55.   Pi=4*Atn(1)
  56.   Yo=80/N/N
  57.   Xx=0
  58.   Yy=186-Yo*2
  59.   '
  60.   For X=1 To 639 Step 2
  61.     Y=186-Yo-Yo*Cos(N*2*Pi*X/279)
  62.     '
  63.     Draw Xx,20+Yy To X,20+Y
  64.     '
  65.     Xt=X+2*Yo*N*Pi*Y/279*Sin(N*2*Pi*X/279)
  66.     Y1=0
  67.     '
  68.     If Xt<0
  69.       Xt=0
  70.     Endif
  71.     '
  72.     Y1=Y+279*X/(2*N*Pi*Yo*Sin(N*2*Pi*X/279))
  73.     '
  74.     If Xt>279
  75.       Xt=279
  76.     Endif
  77.     '
  78.     Y1=Y-(279-X)*279/(2*N*Pi*Yo*Sin(N*2*Pi*X/279))
  79.     '
  80.     Draw X,20+Y To Xt,20+Y1
  81.     Xx=X
  82.     Yy=Y
  83.   Next X
  84.   '
  85. Return
  86. '
  87. Procedure Rays
  88.   '
  89.   Local Qm,Pi
  90.   Qm=Sqr(2*Log(3))
  91.   Pi=4*Atn(4)
  92.   '
  93.   For Q=-Qm To Qm*1.001 Step Qm/30
  94.     X1=0
  95.     Y1=100-Q*90/Qm
  96.     For T=0 To 3.5*Pi Step 0.2
  97.       X=Q*Cos(Exp(-Q*Q/2)*T)
  98.       '
  99.       Draw 190+X1,50+Y1 To 190+T*240/3/Pi,50+100-X*90/Qm
  100.       '
  101.       X1=T*240/3/Pi
  102.       Y1=100-X*90/Qm
  103.     Next T
  104.   Next Q
  105.   '
  106. Return
  107. '
  108. Procedure Island
  109.   '
  110.   Local A,Pi,Al,C,S,Nm,M,X,Y,W
  111.   A=76.11     !Angule of rotation. Try 90.
  112.   Pi=4*Atn(1)
  113.   Al=A*Pi/180
  114.   C=Cos(Al)
  115.   S=Sin(Al)
  116.   Sc=1.5      !Drawing scale.
  117.   Nm=200      !Each point is drawed 'Nm' times.
  118.   M=78        !Number of points.
  119.   '
  120.   For J=1 To M
  121.     X=0
  122.     Y=J/M
  123.     For N=1 To Nm
  124.       W=X
  125.       X=X*C-(Y-X*X)*S
  126.       Y=W*S+(Y-W*W)*C
  127.       '
  128.       Exit If Abs(X)>4 Or Abs(Y)>4
  129.       '
  130.       If Abs(Y)>1 Or Abs(X)>1
  131.         Goto L
  132.       Endif
  133.       '
  134.       Plot 190+128+X*128*Sc,50+96-Y*96*Sc
  135.       '
  136.       L:
  137.     Next N
  138.   Next J
  139.   '
  140. Return
  141. '
  142. Procedure Resonance
  143.   '
  144.   Local K,X,P,A,Y
  145.   K=60          !To decrease the vertical scale, decrease 'K'.
  146.   X=1/(4*Atn(1))
  147.   P=0
  148.   A=1/Sqr(5)    !Resonance ratio = 0.4472136
  149.   '
  150.   ' Try also another irracional numbers for 'A', such as 1/PI.
  151.   '
  152.   For N=1 To 10000   !10000=number of resonance repetitions.
  153.     Y=X-0.5
  154.     X=X+A-Int(X+A)
  155.     P=P-Y
  156.     '
  157.     Plot 190+X*255,128-P*K
  158.     '
  159.   Next N
  160.   '
  161. Return
  162. '
  163. Procedure Caos
  164.   '
  165.   Local Pi,X,Y
  166.   Pi=4*Atn(1)
  167.   X=1/Pi
  168.   Y=1/Pi
  169.   '
  170.   For M=1 To 10000
  171.     X=X+Y-Int(X+Y)
  172.     Y=X+Y-Int(X+Y)
  173.     '
  174.     Plot 190+X*255,60+192-Y*191
  175.     '
  176.   Next M
  177.   '
  178. Return
  179. '
  180. Procedure Fish_pop
  181.   '
  182.   Local S,Nn,Nx,Y
  183.   S=1/127
  184.   '  S=0.005    !Substitue S, Nn, and Nx for commented values to obtain
  185.   Nn=50         !twice the density (resolution).
  186.   '  Nn=200
  187.   Nx=80
  188.   '  Nx=300
  189.   '
  190.   For A=2.8 To 4 Step S
  191.     Y=0.25/Atn(1)
  192.     For N=1 To Nx
  193.       Y=A*Y*(1-Y)
  194.       If N>Nn
  195.         Plot 255*(A-2.8)/1.2,60+192-Y*191
  196.       Endif
  197.     Next N
  198.   Next A
  199.   '
  200. Return
  201.